 1.任务调度系统Airflow之Airflow简介
   
   Airflow 是 Airbnb 开源的一个用 Python 编写的调度工具。于 2014 年启动，2015
年春季开源，2016 年加入 Apache 软件基金会的孵化计划。
   
   Airflow将一个工作流制定为一组任务的有向无环图（DAG），并指派到一组计算节
点上，根据相互之间的依赖关系，有序执行。Airflow 有以下优势：
      灵活易用。Airflow 是 Python 编写的，工作流的定义也使用 Python 编写；
      功能强大。支持多种不同类型的作业，可自定义不同类型的作业。如 Shell、
Python、Mysql、Oracle、Hive等；
      简洁优雅。作业的定义简单明了；
      易扩展。提供各种基类供扩展，有多种执行器可供选择；
   
   1).体系架构
   Webserver 守护进程。接受 HTTP 请求，通过 Python Flask Web 应用程序与airflow 
进行交互。Webserver 提供功能的功能包括：中止、恢复、触发任务；监控正在运行的
任务，断点续跑任务；查询任务的状态，日志等详细信息。
   Scheduler 守护进程。周期性地轮询任务的调度计划，以确定是否触发任务执行。
   
   Worker守护进程。Worker负责启动机器上的executor来执行任务。使用celeryExecutor
后可以在多个机器上部署worker服务。
   2).重要概念
   DAG（Directed Acyclic Graph）有向无环图
      在Airflow中，一个DAG定义了一个完整的作业。同一个DAG中的所有Task拥有相同
的调度时间。
      参数：
	       dag_id：唯一识别DAG
           default_args：默认参数，如果当前DAG实例的作业没有配置相应参数，则
采用DAG实例的default_args中的相应参数
           schedule_interval：配置DAG的执行周期，可采用crontab语法
   
   Task
       Task为DAG中具体的作业任务，依赖于DAG，必须存在于某个DAG中。Task在DAG中
可以配置依赖关系
       参数：
	        dag：当前作业属于相应DAG
            task_id：任务标识符
            owner：任务的拥有者
            start_date：任务的开始时间